package com.example.backed.service;

import com.example.backed.dto.UserUpdateRequest;
import com.example.backed.entity.User;

import java.util.List;

public interface UserService {
    /**
     * 获取用户列表
     * @param page 页码(从0开始)
     * @param size 每页大小
     * @param query 搜索关键词(用户名/邮箱/手机号)
     * @param role 角色筛选
     * @param status 状态筛选
     * @return 用户列表
     */
    List<User> getUserList(int page, int size, String query, String role, String status);
    
    /**
     * 获取用户总数
     * @param query 搜索关键词(用户名/邮箱/手机号)
     * @param role 角色筛选
     * @param status 状态筛选
     * @return 用户总数
     */
    int countUsers(String query, String role, String status);
    
    /**
     * 更新用户信息
     * @param id 用户ID
     * @param request 更新请求
     * @return 更新后的用户
     */
    User updateUser(Long id, UserUpdateRequest request);
    
    /**
     * 更新用户状态
     * @param id 用户ID
     * @param enabled 是否启用
     * @return 更新后的用户
     */
    User updateUserStatus(Long id, boolean enabled);
    
    /**
     * 重置用户密码
     * @param id 用户ID
     * @return 新密码
     */
    String resetPassword(Long id);
} 